iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0

今天來繼續我們的控制流,今天來講一下 if 跟 switch 這兩個語法。

If

if 語法最簡單的狀況下就是他有一個條件,只有條件為true ,他才會執行。簡單得中文語法就是
如果⋯⋯就,如果沒有就。

var hungry:Bool = true

if hungry {
    print("想吃東西")
}else{
    print("不餓")
}
// print 出 想吃東西。

if 也可以連續的條件,像是
如果⋯⋯就,如果沒有而有⋯⋯就,如果都沒有就。
大概是這種感覺

var hungry:Bool = false

var food:String = "甜點"

if hungry {
    print("想吃東西")
}else if food == "甜點"{
    print("可以吃")
}else{
    print("不餓")
}
// print 可以吃 。

Switch

switch 這個語法呢,蠻常拿來替換 if 語法的,他跟if的差別是他是達到條件跑達到條件的地方,而不是像 if 語法從上面一路往下跑。

var age: Int = 25

var ageString = ""

switch age {
    case 0...15:
        return ageString = "幼年"
    case 15...30: 
        return ageString = "青年"
    case 30...50: 
        return ageString = "壯年"
    case 50...90:
        return ageString = "老年"
    default:
        return ageString = "得道仙人"
}

print(ageString)
// 輸出 青年。

switch 語法會有多個 case 組成,簡單來說你就是把它想成不同條件來理解。
然後我分享一下我之前在社範圍區間條件的時候學到的方法。

switch case 裡 設定 大於某數 或者 小於某數

switch x {
    //大於某數
    case 30...:
    return
    
    case let x where x > 30:
    return
    //或者 省略 let x
    case _ where x > 30
    return
    
    //小於某數
    case ..<5:
    return
    
    case let x where x < 5:
    return
    case _ where x < 5:
    return
    
}

裡面的 x 可以隨意設置 裡面底線省略的是裡面的 x 跟外面 switch x 的 x 沒有關係

控制轉移

控制轉移得語法有下面幾個

  • continue
  • break
  • fallthrough
  • return
  • throw

這邊就先介紹前三個。

continue

continue 這個語句的狀態會是停止循環的狀態往下執行之後繼續循環。

let puzzleInput="great minds think alike"
var puzzleOutput=""
let charactersToRemove:[Character]=["a", "e", "i", "o", "u", " "]
for character in puzzleInput {
    if charactersToRemove.contains(character) {
        continue
    }
    puzzleOutput.append(character)
}
print(puzzleOutput)
// Prints "grtmndsthnklk"

break

break 這個語句就是跟他的翻譯一樣,直接結束其執行的狀態。最常見的就是出現在 switch 語句之中。
拿上面的例子,就可以在 default 那邊設成 break 。

var age: Int = 25

var ageString = ""

switch age {
    case 0...15:
        return ageString = "幼年"
    case 15...30: 
        return ageString = "青年"
    case 30...50: 
        return ageString = "壯年"
    case 50...90:
        return ageString = "老年"
    default:
        break
}

fallthrough

他也是寫在 switch 裡面,原本 break 是要防止 case 執行完之後會往下到其他的 case 條件之中,那 fallthrough 就是 我不管我全都要,小朋友才做選擇。 (X
以下面官方的例子就可以明白許多。

let integerToDescribe = 5
var description = "The number \(integerToDescribe) is"
switch integerToDescribe {
case 2, 3, 5, 7, 11, 13, 17, 19:
    description += " a prime number, and also"
    fallthrough
default:
    description += " an integer."
}
print(description)
// 输出“The number 5 is a prime number, and also an integer.”

好了,今天控制流就到這裡了,明天要來講最常用的函數(functions)。


上一篇
30天的 iOS 修仙道路 (12)
下一篇
30天的 iOS 修仙道路 (14)
系列文
30天的 iOS 修仙道路 站穩腳步基礎篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言